Wireless transmit/receive systems are used in many different applications to provide a convenient method of remote control of devices. One such system is a transmit/receive system used to open the garage door of a user's home. This system includes a garage door opening system, a receiver coupled to the garage door opening system, and an original, hand-held transmitter. The user presses a button on the original transmitter to transmit a radio frequency signal to the receiver to activate the garage door opening system to open and close a garage door.
Garage door opener systems sold today commonly use encryption technology to encrypt the radio frequency signal sent from the transmitter to the receiver. This prevents “code grabbers” from stealing the digital message modulated on the radio frequency signal and using the digital message to gain access to the user's garage and, potentially, the home. One such encryption method is a rolling code system, wherein each digital message sent from the transmitter to the receiver has a different code from the last digital message.
In one such system, a transmitter identifier (sometimes called a serial number) and an encrypted counter value (sometimes called a hop code) are sent with each transmission. A counter value in the transmitter increments each time the transmitter button is pressed. An encryption algorithm encrypts the counter value to create a new encrypted code or value. When the encrypted counter value is transmitted, it appears to bear no predictable relationship to the previously sent encrypted counter value, and thereby appears to “hop” from one value to another. The receiver also stores the counter value in unencrypted form. Upon receipt of an encrypted counter value for a particular transmitter identifier, the counter value is unencrypted and compared to the previously stored counter value to determine whether the garage door opener should be activated. If the new value is less than or the same as the previously stored counter value, it may have come from a code grabber, and, therefore, the receiver does not activate the garage door opener. If the new value is greater than the previously stored counter value but less than a predefined number, the garage door is activated. If the new value is greater than the predefined number ahead of the previously stored counter value, the receiver stores the value, but does not activate the garage door opener. Upon receipt of the next counter value from the transmitter, if the receiver determines that the two values are in sequence, the garage door is activated and the most recently received counter value is stored in memory. Of course, this is just one example of many types of rolling code-based systems.
When training or programming a new transmitter to operate with a receiver, the two must be “synchronized” so that their counters begin at the same value. Also, the receiver must learn the transmitter identifier of the new transmitter. In a training mode, the user presses a button on the receiver to place the receiver in a training mode. The user then presses a button on the transmitter to send a first message including the transmitter identifier and counter value. The receiver stores this received information. The user then must press the button on the transmitter a second time to send another message including the transmitter identifier and the next counter value in sequence. Upon receipt of two counter values in sequence for a given transmitter identifier, the receiver becomes trained to the transmitter and stores the transmitter identifier and most recently received counter value, typically in non-volatile memory.
One drawback of this system is that a user who is training a new transmitter to the receiver often neglects to press the transmitter button twice to complete the training. As a result, the system does not train properly, and the user calls the manufacturer of the transmitter and/or receiver reporting a problem, when no problem in fact exists.
This problem also occurs when the transmitter is a universal transmitter for an automobile, such as the HomeLink® trainable transmitter manufactured by Johnson Controls Interiors LLC, Holland, Mich. The HomeLink® trainable transmitter is configurable by a user to activate one or more of a plurality of different receivers using different radio frequency messages. This trainable transmitter is “trained” to an existing original transmitter by holding the two transmitters in close range and pressing buttons on the original transmitter and trainable transmitter simultaneously. The trainable transmitter identifies the type of transmit/receive system associated with the transmitter based on the radio frequency signal received from the original transmitter. The user then presses a button on the receiver to put the receiver in a training mode. The last step in the training process for some remote control systems is to press a button on the trainable transmitter two to three times. The first two messages are sent to complete synchronization of the receiver, and the third message is sent to activate the garage door opener so that the user gets a visual confirmation that the training process was successful. However, many users fail to press the button on the trainable transmitter a sufficient number of times, causing the problems mentioned hereinabove.
Accordingly, what is needed is an improved system and method of synchronizing or training a transmitter to a receiver in a transmit/receive system using a counter value, such as a rolling-code type system. Further, what is needed is a system and method which will simplify the synchronizing or training process for a transmit/receive system and, in particular, simplify the process for training a trainable transmitter to a receiver. Further still, what is needed is a system and method which will reduce the time it takes to train a transmitter to a receiver in a rolling-code type system.